//自定义导出函数
import { export_json_to_excel } from '@/utils/file/export2Excel'

// 格式化JSON数据的辅助函数
const formatJson = (filterVal, jsonData) => {
  return jsonData.map((v) => filterVal.map((j) => v[j]))
}
export function exportDataToExcel({ filename, columns, data }) {
  return new Promise((resolve, reject) => {
    // 生成表头和对应的属性数组
    const tHeader = columns.map((col) => col.label)
    const tBody = columns.map((col) => col.prop)

    // 格式化数据
    const formattedData = formatJson(tBody, data)

    try {
      // 使用 export_json_to_excel 执行实际的导出操作
      export_json_to_excel({
        header: tHeader, // 表头
        data: formattedData, // 数据
        filename: filename || '导出数据', // 文件名
        autoWidth: true, // 宽度自适应
      })

      // 模拟成功返回
      resolve(`成功导出 ${data.length} 条数据 ${filename}.xlsx`)
    } catch (error) {
      // 捕获并返回错误
      reject(new Error('数据导出失败: ' + error.message))
    }
  })
}
